1. Field of the Invention
This invention relates generally to the field of direct sequence spread spectrum (DSSS) communications and, more particularly, to a system and method for controlling a voltage controlled oscillator in the down-conversion of a frequency in a code division multiple access (CDMA) wireless receiver.
2. Description of the Related Art
In DSSS communications, such as CDMA systems, pseudorandom noise (PN) sequences are used to generate spread spectrum signals by increasing the bandwidth (i.e., spreading) of a baseband signal. A forward link waveform transmitted by the base station may be comprised of a pilot waveform and a data waveform. Both of the waveforms are received with the same relative phase and amplitude distortions introduced by the channel. The pilot waveform is an unmodulated PN sequence which aids in the demodulation process, as is well-known in the art as xe2x80x9cpilot-aided demodulation.xe2x80x9d Conventional pilot-aided demodulation methods typically include the steps of (i) demodulating the pilot waveform, (ii) estimating the relative phase and amplitude of the pilot waveform, (iii) correcting the phase of the data waveform using the estimated phase of the pilot waveform, and (iv) adjusting the weight of data symbols used in maximal ratio combining in a RAKE receiver based on the estimated amplitude of the pilot waveform. Steps (iii) and (iv) above are performed as a xe2x80x9cdot productxe2x80x9d as is known in the art. In some conventional methods, a controller having a central processing unit (CPU) and and/or a digital signal processor (DSP) performs each step described, including the dot product function.
FIG. 1 illustrates a conventional IS-95 forward link base station transmitter multiplexing section 10 (prior art). A pilot channel 12 is generated that has no data. That is, the data is predetermined to be all xe2x80x9c0xe2x80x9d bits. The pilot channel is modulated, or covered with a Walsh code from Walsh code generator 14 at 1.2288 Mcps (megachips per second). Sixty four orthogonal Walsh codes, each of 64 bits, are used in the IS-95A and 95B systems. The IS-2000 standard uses 192 Walsh-like codes. Each channel is modulated with a unique Walsh code. Walsh code H0 is used to modulate the pilot channel.
Also depicted is a traffic or paging channel, which shall be referred to herein as an information channel. Data is input at one of a plurality of data rates from 9.6 kbps (kilobits per second)to 1.2 kbps. The data is encoded at encoder 16, one bit per two code symbols, so that the output of the encoder 16 varies from 19.2 ksps (kilosymbols per second) to 2.4 ksps. Symbol repetition device 18 repeats the codes from 1 to 8 times to create a 19.2 ksps signal. Additional data rates are used in other CDMA standards. Alternately stated, either 1, 2, 4, or 8 modulation symbols are created per code symbol. Then, the information channel is scrambled with a long code at the same 19.2 ksps rate. The information channel is covered with a different Wash code from that used to cover the pilot channel, code HT for example.
After being modulated with Walsh codes, each channel is spread with a common short code, or PN sequence. Each channel is split into I and Q channels, and spread with I and Q channel PN sequences. A 90 degree phase shift is introduced by multiplying the I channels with a sin function, while the Q channel is being multiplied with a corresponding cosine function. Then, the I and Q channels are summed into a QPSK channel. In the IS-95A standard, the same baseband symbols are assigned to an I and Q quadrature. The combination of all the QPSK channels, including pilot, synchronization, paging, and traffic channels can be considered a sample stream. As a final step, the sample stream is frequency up-converted at mixer 20 with a local oscillator signal, having a local oscillator frequency, and transmitted.
FIG. 2 is a conventional IS-95 CDMA receiver (prior art). At the mobile station receiver 50 the transmitted signals are accepted as analog information, down-converted in frequency to baseband, converted into a digital sample stream at A/D 52, split into I and Q channels, multiplied respectively by sin and cosine functions to remove the 90 phase shift. Conventionally, a multi-finger RAKE receiver is used to resolve multipath variations in the sample stream, so that degradation due to fading can be minimized. Three demodulation fingers, demodulation finger 1 (54), demodulation finger 2 (56), and demodulation finger 3 (58) all receive the same I and Q sample stream. Each demodulation finger is assigned one of the sample stream multipath variations. PN codes and Walsh codes are generated with a delay consistent with the multipath delay of the sample stream to be demodulated. The sample stream from the multipaths is coherently combined in combiner 60 based on a maximal ratio combining (MRC) principle.
To effectively demodulate phase modulated signals, it is important to remove phase errors between communicating transmitters and receivers. The voltage controlled oscillator devices have inherent frequency accuracy tolerance, and tolerances due to temperature variations, which do not permit a precision open loop LO signal to be used. Further, multipath and Doppler shifts due to vehicle speed can introduce frequency errors, or frequency offsets from the transmitted frequency, into the signal as received. For example, temperature can introduce errors of +/xe2x88x922 parts per million (PPM), aging can introduce +/xe2x88x921 PPM per year, the process of soldering (application of IR energy) can introduce errors of +/xe2x88x921 PPM, initial frequency tolerance can introduce +/xe2x88x921 PPM, power supply variations can introduce +/xe2x88x920.3 PPM, load variations can introduce +/xe2x88x920.2 PPM, and Doppler can introduce up to +/xe2x88x920.15 PPM errors into an output frequency of 2 gigahertz. Over a 3 year product life, and carrier frequency of 2 gigahertz, a +/xe2x88x9215 kilohertz error can result.
Thus, the LO frequency driving mixer 51 must be tracked with respect to the actual received frequency. To accomplish this frequency tracking, phase changes are measured in the demodulated pilot symbols, as these symbols have a predetermined value.
Conventionally, a frequency discriminator multiplies a present pilot symbol by previous pilot sample to convert the frequency error, the difference between the carrier signal and the LO, into a phase error. To simplify the operation, only the negative part of the imaginary part of the product is typically used for the phase error. The phase data can be used to aid in bit decisions at the demodulation finger, or used as the input to an automatic frequency control (AFC) loop to actually null out the error.
In an AFC loop the problem is further complicated by the fact that the carrier signal is received in a plurality of delays associated with multipath. Each version, or carrier signal delay may have a slightly different center frequency, or frequency offset from the other carrier signal delays. Therefore, a correction based upon one carrier signal delay is not optimum for the others. To address this problem, the phase errors of each carrier signal delay (each multipath) are combined in a maximal-ratio combining process that weights stronger versions of carrier signal delays over more weakly received versions.
FIG. 3 is a schematic block diagram illustration of a conventional automatic frequency control system 70 (prior art). Such a system would be used to track frequency drift in the voltage controlled oscillator 72 associated with the local oscillator. It should be noted that one AFC discriminator is provided for each demodulator finger. The correction to the oscillator 72 is based on some weighted sum of locked fingers. Consequently, the error measurement E(t) is a function of an equally weighted sum of all locked demodulator fingers as follows:
E(t)={function of sum of ei(t)}
Where i=1,2,3 . . . n (demodulator finger).
The input to the frequency error detector block 74 is assumed to be estimates of the pilot channel that the finger is currently tracking. This takes advantage of the pilot estimate process done by the Channel Estimator.
The AFC loop 70 requires a frequency discriminator, a part of the frequency error detector 74, to produce an estimate of the frequency error of the signal to close the loop. The most widely used discriminator is computationally inexpensive, and is called the Cross-Product discriminator. This method is based on estimating the frequency by first obtaining an estimate of the phase, and then differentiating. The implementation only requires two multiplication operations and one addition operation. The drawback of this approach is that the resulting estimate is valid only in the tracking mode, when the frequency errors are small, and is sensitive to amplitude errors from noise and the automatic gain control (AGC) residual gain errors.
A frequency estimate is obtained by, first, determining the optimal estimate for the phase angle and, then, obtaining a frequency estimate through differentiation. The in-phase and quadrature (I and Q channel) pilot samples are expressed in rectangular coordinates after down conversion; despreading, and the complex sum and dump operations. The pilot symbol samples are expressed in rectangular coordinates by the following expressions:
Ik=Ak cos xcex8kxe2x80x83xe2x80x83(1)
Qk=Ak sin xcex8kxe2x80x83xe2x80x83(2)
where the phase sample contains the frequency error xcex94f and a constant phase term xcfx860
xe2x80x83xcex8k=xcex8(t)|k=(2xcfx80xcex94ft+xcfx860)|k.xe2x80x83xe2x80x83(3)
The optimal phase estimator in the Maximum Likelihood (ML) sense can be shown to be given by:                               θ          ^                =                              -                          tan                              -                1                                              ⁢                      xe2x80x83                    ⁢                                                    Q                k                                            I                k                                      .                                              (        4        )            
To obtain an estimate of the frequency error, the derivative of the phase process is taken to produce:                               2          ⁢                      xe2x80x83                    ⁢          π          ⁢                      xe2x80x83                    ⁢          Δ          ⁢                      xe2x80x83                    ⁢          f                =                                            -                              ⅆ                                  ⅆ                  t                                                      ⁢                          xe2x80x83                        ⁢                          tan                              -                1                                      ⁢                          xe2x80x83                        ⁢                                          Q                k                                            I                k                                              =                                                                                                                I                      .                                        k                                    ⁢                                      Q                    k                                                  -                                                      I                    k                                    ⁢                                                            Q                      .                                        k                                                                                                I                  k                  2                                +                                  Q                  k                  2                                                      .                                              (        5        )            
The dot notation in (5) is used to denote differentiation. In discrete time, the derivative of the in-phase and quadrature components can be approximated by using finite differences as follows;                                                         I              .                        k                    ≈                                                    I                k                            -                              I                                  k                  -                  1                                                                    T              s                                      ,                              and            ⁢                          xe2x80x83                        ⁢                                          Q                .                            k                                ≈                                                                      Q                  k                                -                                  Q                                      k                    -                    1                                                                              T                s                                      .                                              (        6        )            
Substituting the finite difference expression of (6) into (5):   "AutoLeftMatch"                                                                                          2                  ⁢                                      xe2x80x83                                    ⁢                  π                  ⁢                                      xe2x80x83                                    ⁢                  Δ                  ⁢                                      xe2x80x83                                    ⁢                  f                                ≈                                  xe2x80x83                                ⁢                                                                                                    I                        k                                            ⁢                                              Q                                                  k                          -                          1                                                                                      -                                                                  Q                        k                                            ⁢                                              I                                                  k                          -                          1                                                                                                                                                (                                                                        I                          k                          2                                                +                                                  Q                          k                          2                                                                    )                                        ⁢                                          T                      s                                                                                                                                              =                                  xe2x80x83                                ⁢                                                                                                    A                        k                                            ⁢                                              A                                                  k                          -                          1                                                                                                                                    A                        k                        2                                            ⁢                                              T                        s                                                                              ⁢                                      xe2x80x83                                    ⁢                  sin                  ⁢                                      xe2x80x83                                    ⁢                                                            (                                                                        θ                          k                                                -                                                  θ                                                      k                            -                            1                                                                                              )                                        .                                                                                                            (          7          )                    
Equation (7) shows the limitation of the finite difference approximation. The approximation of the derivative by finite differences holds in the limit as the sample to sample difference is small and the sampling time goes to zero. Practically, it can be seen from the right-hand side of equation (7) that the approximation is valid for small angle differences in the phase where the sine of a small angle equals the angle itself.
The cross product discriminator performs the calculation IkQkxe2x88x921xe2x88x92QkIkxe2x88x921. This is precisely the numerator in (7). Expanding this result it follows that:   "AutoLeftMatch"                                                                                                                                    I                      k                                        ⁢                                          Q                                              k                        -                        1                                                                              -                                                            Q                      k                                        ⁢                                          I                                              k                        -                        1                                                                                            =                                  xe2x80x83                                ⁢                                                      A                    k                                    ⁢                                      A                                          k                      -                      1                                                        ⁢                                      xe2x80x83                                    ⁢                  sin                  ⁢                                      xe2x80x83                                    ⁢                                      (                                                                  θ                        k                                            -                                              θ                                                  k                          -                          1                                                                                      )                                                                                                                          ≈                                  xe2x80x83                                ⁢                                                      A                    k                                    ⁢                                      A                                          k                      -                      1                                                        ⁢                                      xe2x80x83                                    ⁢                  2                  ⁢                                      xe2x80x83                                    ⁢                  π                  ⁢                                      xe2x80x83                                    ⁢                  Δ                  ⁢                                      xe2x80x83                                    ⁢                  f                  ⁢                                      xe2x80x83                                    ⁢                                      T                    s                                                                                                            (          8          )                    
As noted above, this result gives an adequate approximation to the frequency error when the phase difference between samples is small. In many cases of interest, such as acquisition however, the phase difference will not be small, and this approximation does not hold. Another drawback to this approach is that there is a direct amplitude dependence on the frequency estimate. This may cause erroneous frequency error estimates in the feedback loop. The elimination of this amplitude dependence requires more complex processing.
It would be advantageous if a more accurate method of determining phase differences in AFC loop calculations could be devised.
It would be advantageous if phase error calculations could be made in an AFC loop for application in resolving both large and small phase errors. Likewise, it would be useful if such a calculation could be applied to frequency acquisition and tracking.
It would be advantageous if the phase error calculations for an AFC loop did not suffer from amplitude variations introduced by noise.
Accordingly, in a DSSS communications receiver, a method for automatically controlling a frequency is provided comprising: receiving a carrier signal with a plurality of corresponding delays and signal strengths; recovering pilot symbols from the plurality of carrier signal delays; calculating the phase error between the pilot symbol samples from each carrier signal delay; and, combining the phase errors, weighted with respect to the plurality of carrier signal strengths. In some aspects, a maximal-ratio weighting process is used.
As explained above, the sample stream includes a pilot channel with I and Q channel components, so that recovering the pilot symbol information includes sampling the I and Q channel components at a first and second time, in each of the plurality of sample stream delays, where a sample stream delay corresponds to a multipath variation in the arriving carrier signal. Then, calculating the phase error between pilot symbols includes taking the complex conjugate product between I and Q component samples, from first and second times, to yield a difference vector in each of the plurality of sample stream delays. The weighted combining of phase errors includes combining difference vectors from each sample stream delay to form a difference vector sum.
In a preferred aspect of the invention, following the weighted combining of difference vectors, the method further comprising finding the angle of the difference vector sum by calculating the arctangent of the difference vector sum. Selectively controlled processes of filtering and accumulation follow that make the computation applicable to either frequency tracking or frequency acquisition scenarios.
A DSSS communications receiver, automatic frequency control (AFC) system is also provided. The system comprises a down-converter circuit accepting a carrier signal with a plurality of delays and corresponding signal strengths, and providing a sample stream, with respective delays. The sample stream also including a pilot channel of pilot symbols. A plurality of demodulation fingers are also included, where each of the demodulation fingers accepts one of the sample stream delays and provides demodulated pilot symbols. Each one of a plurality of frequency discriminators accepts pilot symbols from a corresponding demodulation finger. Each frequency discriminator samples pilot symbols to provide a phase error between pilot symbols samples.
The system also includes a combiner accepting phase errors from the frequency discriminators and providing a combination of phase errors weighted with respect to the signal strength of the corresponding carrier signal delay. A complex phase block accepts the weighted combination output and provides the angle of the difference vector sum by calculating the arctangent of the difference vector sum.